const { urlencoded } = require('express');
const express = require('express');
// 首先引入session，别忘了npm install express-session
const session = require('express-session');

const appRouter = require('./router/appRouter');

let app = express();

// 在express应用中注册session中间件的流程一样，用use。session是一个方法，我们需要传入一个对象
app.use(session({
    name:'mikaisa',//name就是未来前端cookie的名字
    secret:'dsafas',//secret是秘钥，可以胡乱打。
    cookie:{//我们说过鉴权是通过session和cookie，所以cookie属性就是对于前端cookie的属性设置
        maxAge:1000*60,//maxAge就是cookie的过期时间，单位为ms，实例就是1分钟
        secure:false,//secure属性为true则代表至于https协议下才能访问cookie。
    },
    rolling:true,//rolling为true则代表如果用户在cookie过期前刷新页面，会重新计时。
    resave:true,//和rolling差不多，不过resave代表如果用户在cookie过期前是活跃的，则会重新计时
}));

app.set('views','./views');
app.set('view engine','ejs');

app.use((req,res,next)=>{
    if(req.path.includes('login')){
        next();
        return ;
    }

    if(req.session.user){
        next();
    }
    else{
        res.render('login');
    }
});

app.use(express.urlencoded({extended:false}));
app.use(express.json());


app.use('/',appRouter);

app.listen(10047,()=>console.log('server start'))
